package com.ruoyi.system.domain.honor.studentpaper;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 学生科研成果学术论文对象 student_paper
 * 
 * @author ruoyi
 * @date 2025-10-11
 */
public class StudentPaper extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键 */
    private Long id;

    /** 论文标题 */
    @Excel(name = "论文标题")
    private String paperTitle;

    /** DOI号 */
    @Excel(name = "DOI号")
    private String doiNumber;

    /** 刊物/会议名称 */
    @Excel(name = "刊物/会议名称")
    private String publicationName;

    /** 发表时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发表时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date publishTime;

    /** 期刊收录情况 */
    @Excel(name = "期刊收录情况")
    private String inclusionStatus;

    /** 体现论文水平的描述文字（限30字） */
    @Excel(name = "体现论文水平的描述文字", readConverterExp = "限=30字")
    private String paperLevel;

    /** 上传附件地址 */
    @Excel(name = "上传附件地址")
    private String attachmentUrl;

    /** 教师id */
    @Excel(name = "教师id")
    private Long teacherId;

    /** 教师姓名 */
    @Excel(name = "教师姓名")
    private String teacherName;
    /** 科目 */
    private String subject;
    /** 学生姓名 */
    private String studentName;

    /** 学生类别 */
    private String studentType;

    /** 排名 */
    private Long rank;

    /** 作者类型 */
    private String userType;

    private String currentRole;

    private Long deptId;

    /** 成员 */
    private List<StudentPaperMember> members;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setPaperTitle(String paperTitle) 
    {
        this.paperTitle = paperTitle;
    }

    public String getPaperTitle() 
    {
        return paperTitle;
    }

    public void setDoiNumber(String doiNumber) 
    {
        this.doiNumber = doiNumber;
    }

    public String getDoiNumber() 
    {
        return doiNumber;
    }

    public void setPublicationName(String publicationName) 
    {
        this.publicationName = publicationName;
    }

    public String getPublicationName() 
    {
        return publicationName;
    }

    public void setPublishTime(Date publishTime) 
    {
        this.publishTime = publishTime;
    }

    public Date getPublishTime() 
    {
        return publishTime;
    }

    public void setInclusionStatus(String inclusionStatus) 
    {
        this.inclusionStatus = inclusionStatus;
    }

    public String getInclusionStatus() 
    {
        return inclusionStatus;
    }

    public void setPaperLevel(String paperLevel) 
    {
        this.paperLevel = paperLevel;
    }

    public String getPaperLevel() 
    {
        return paperLevel;
    }

    public void setAttachmentUrl(String attachmentUrl) 
    {
        this.attachmentUrl = attachmentUrl;
    }

    public String getAttachmentUrl() 
    {
        return attachmentUrl;
    }

    public void setTeacherId(Long teacherId)
    {
        this.teacherId = teacherId;
    }

    public Long getTeacherId()
    {
        return teacherId;
    }

    public void setTeacherName(String teacherName) 
    {
        this.teacherName = teacherName;
    }

    public String getTeacherName() 
    {
        return teacherName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("paperTitle", getPaperTitle())
            .append("doiNumber", getDoiNumber())
            .append("publicationName", getPublicationName())
            .append("publishTime", getPublishTime())
            .append("inclusionStatus", getInclusionStatus())
            .append("paperLevel", getPaperLevel())
            .append("attachmentUrl", getAttachmentUrl())
            .append("teacherId", getTeacherId())
            .append("teacherName", getTeacherName())
            .toString();
    }

    public String getSubject() {
        return subject;
    }

    public void setSubject(String subject) {
        this.subject = subject;
    }

    public String getStudentName() {
        return studentName;
    }

    public void setStudentName(String studentName) {
        this.studentName = studentName;
    }

    public String getStudentType() {
        return studentType;
    }

    public void setStudentType(String studentType) {
        this.studentType = studentType;
    }

    public Long getRank() {
        return rank;
    }

    public void setRank(Long rank) {
        this.rank = rank;
    }

    public String getUserType() {
        return userType;
    }

    public void setUserType(String userType) {
        this.userType = userType;
    }

    public List<StudentPaperMember> getMembers() {
        return members;
    }

    public void setMembers(List<StudentPaperMember> members) {
        this.members = members;
    }

    public String getCurrentRole() {
        return currentRole;
    }

    public void setCurrentRole(String currentRole) {
        this.currentRole = currentRole;
    }

    public Long getDeptId() {
        return deptId;
    }

    public void setDeptId(Long deptId) {
        this.deptId = deptId;
    }
}
